An Abstract Interpretation-Based Framework for Control Flow Reconstruction from Binaries
نویسندگان
چکیده
Due to indirect branch instructions, analyses on executables commonly suffer from the problem that a complete control flow graph of the program is not available. Data flow analysis has been proposed before to statically determine branch targets in many cases, yet a generic strategy without assumptions on compiler idioms or debug information is lacking. We have devised an abstract interpretation-based framework for generic low level programs with indirect jumps which safely combines a pluggable abstract domain with the notion of partial control flow graphs. Using our framework, we are able to show that the control flow reconstruction algorithm of our disassembly tool Jakstab produces the most precise overapproximation of the control flow graph with respect to the used abstract domain.
منابع مشابه
Control-flow analysis of function call and returns by abstract interpretation
We derive a control-flow analysis that approximates the interprocedural control-flow of both function calls and returns in the presence of first-class functions and tail-call optimization. In addition to an abstract environment, our analysis computes for each expression an abstract control stack, effectively approximating where function calls return across optimized tail calls. The analysis is ...
متن کاملAlternating Control Flow Reconstruction
Unresolved indirect branch instructions are a major obstacle for statically reconstructing a control flow graph (CFG) from machine code. If static analysis cannot compute a precise set of possible targets for a branch, the necessary conservative over-approximation introduces a large amount of spurious edges, leading to even more imprecision and a degenerate CFG. In this paper, we propose to lev...
متن کاملStatic Analysis of Code Binaries for Safe Software Reuse
In this paper we consider reusability of software component binaries. Reuse of code at the binary level is important because usually only the machine code for system components is available; vendors do not want to share their source code for proprietary reasons. We develop necessary and sufficient conditions for ensuring that software binaries are reusable and relate them to the coding standard...
متن کاملAnalysis and Verification of Cyber-Physical System Software Using Static Analysis By
Interpretation, VMCAI’12, pages 267–282, 2012. [65] J. Kinder, F. Zuleger, and H. Veith. An abstract interpretation-based framework forcontrol flow reconstruction from binaries. In Proceedings of the 10th InternationalConference on Verification, Model Checking, and Abstract Interpretation, VMCAI’09, pages 214–228, 2009. [66] J. Kranz, A. Sepp, and A. Simon. Gdsl: A universal toolkit...
متن کاملAn Analytic Framework for JavaScript
As the programming language of the web, JavaScript deserves a principled yet robust framework for static analysis. To achieve both aims simultaneously, we start from an established reduction semantics for JavaScript and systematically derive its intensional abstract interpretation. Our first step is to transform the semantics into an equivalent low-level abstract machine: the JavaScript Abstrac...
متن کامل